<?php
	class MailManager extends CI_Model
	{
		/* Attributs */
		public static $listeMails = array(
// 			array('nom du fichier sans extension', 	'Intitulé')
			array('rappel_etudiant_adc',			'Rappel Etudiant ADC'),
			array('rappel_etudiant_ficheADC',		'Rappel Etudiant Fiche ADC'),
			array('inscription_auto_etudiant', 		'Inscription Auto Etudiant'),
			array('rappel_enseignant_adc', 			'Rappel Enseignant ADC'),
			array('rappel_enseignant_fiche_bilan', 	'Rappel Enseignant Fiche Blian'),
			array('proposition_adc', 				'Proposition ADC'),
			array('adc_incomplete', 				'ADC imcomplete'),
		);
		public static $champs = array(
				'[etudiant]',
				'[lien_action]',
				'[date_action]',
				'[enseignant_action]',
				'[nom_action]',
				'[nb_max_etudiant_action]',
				'[nb_etudiant_action]',
				'[theme_action]',
				'[action_proposition]',
				'[enseignant_forum]',
				'[enseignant_forum]',
				'[nom_forum]',
				'[date_forum]',
				'[lien_forum]',
		);
		private $contenu;
		private $fileName;
		private $objet;

		public function __construc()
		{
			parent::__construct();
			
			$this->load->model('ActionsDeCommunication/ActionDeCommunication');
			$this->load->model('Utilisateurs/Enseignant');
			$this->load->model('Utilisateurs/Etudiants');
				
			$this->fileName = "aucun";
			$this->contenu = null;
		}

		public function load()
		{
			if(file_exists(textes_chemin('mails/'.$this->fileName, 'html')))
			{
				$handle = fopen(textes_chemin('mails/'.$this->fileName, 'html'), 'r');
				$this->objet = fgets($handle);
				$this->contenu = fread($handle, filesize(textes_chemin('mails/'.$this->fileName, 'html')));
				fclose($handle);

				return true;
			}
			else
				return false;
		}

		public function save()
		{
			if(!is_null($this->contenu))
			{
				$handle = fopen(textes_chemin('mails/'.$this->fileName, 'html'), 'w');
				fputs($handle, $this->objet."\n".$this->contenu);
				fclose($handle);

				return true;
			}
			else
				return false;
		}
		
		public function translate($information)
		{
			include model_chemin('putDateJJMMAAAA');

			if($this->getFileName()=='rappel_etudiant_adc')
			{
				$translate_contenu = str_replace('[etudiant]' , $information['etudiant']->getNom().' '.$information['etudiant']->getPrenom(), $this->getContenu());
				$translate_contenu = str_replace('[nom_action]' , $information['action']->getTitre(), $this->getContenu());
				$translate_contenu = str_replace('[date_action]' , putDateJJMMAAAA($information['action']->getDate()), $this->getContenu());
			}
			elseif($this->getFileName()=='rappel_etudiant_ficheADC')
			{
				$translate_contenu = str_replace('[etudiant]' , $information['etudiant']->getNom().' '.$information['etudiant']->getPrenom(), $this->getContenu());
				$translate_contenu = str_replace('[nom_action]' , $information['action']->getTitre(), $this->getContenu());
				$translate_contenu = str_replace('[lien_action]' , base_url().'index.php/ActionsDeCommunication/detailAction/'.$information['action']->getId(), $this->getContenu());
			}
			elseif($this->getFileName()=='inscription_auto_etudiant')
			{
				$translate_contenu = str_replace('[etudiant]' , $information['etudiant']->getNom().' '.$information['etudiant']->getPrenom(), $this->getContenu());
				$translate_contenu = str_replace('[nom_action]' , $information['action']->getTitre(), $this->getContenu());
				$translate_contenu = str_replace('[lien_action]' , base_url().'index.php/ActionsDeCommunication/detailAction/'.$information['action']->getId(), $this->getContenu());
				$translate_contenu = str_replace('[date_action]' , putDateJJMMAAAA($information['action']->getDate()), $this->getContenu());
			}
			elseif($this->getFileName()=='rappel_enseignant_adc')
			{
				$translate_contenu = str_replace('[nom_action]' , $information['action']->getTitre(), $this->getContenu());
				$translate_contenu = str_replace('[enseignant_action]' , $information['action']->getEnseignant()->getNom().' '.$information['action']->getEnseignant()->getPrenom(), $this->getContenu());
				$translate_contenu = str_replace('[date_action]' , putDateJJMMAAAA($information['action']->getDate()), $this->getContenu());
			}
			elseif($this->getFileName()=='rappel_enseignant_fiche_bilan')
			{
				$translate_contenu = str_replace('[nom_forum]' , $information['forum']->getTitre(), $this->getContenu());
				$translate_contenu = str_replace('[lien_forum]' , base_url().'index.php/Forum/detailForum/'.$information['forum']->getId(), $this->getContenu());
				$translate_contenu = str_replace('[enseignant_forum]' , $information['forum']->getEnseignant()->getNom().' '.$information['action']->getEnseignant()->getPrenom(), $this->getContenu());
				$translate_contenu = str_replace('[date_forum]' , putDateJJMMAAAA($information['forum']->getDate()), $this->getContenu());
			}
			elseif($this->getFileName()=='proposition_adc')
			{
				$translate_contenu = str_replace('[action_proposition]' , 'Titre : '.$information['action']->getTitre().'<br>Thème : '.$information['action']->getTheme()->getLibelle().'<br>Nombre d\'étudiant : '.$information['action']->getNombreEtudiantMax().'<br>Date de déroulement : '.putDateJJMMAAAA($information['action']->getDate()).'<br>Commentaire : '.$information['action']->getCommentaire(), $this->getContenu());
			}
			elseif($this->getFileName()=='adc_incomplete')
			{
				$translate_contenu = str_replace('[date_action]' , putDateJJMMAAAA($information['action']->getDate()), $this->getContenu());
				$translate_contenu = str_replace('[nom_action]' , $information['action']->getTitre(), $this->getContenu());
				$translate_contenu = str_replace('[nb_max_etudiant_action]' , $information['action']->getNombreEtudiantMax(), $this->getContenu());
				$translate_contenu = str_replace('[nb_etudiant_action]' , $information['action']->countEtudiants(), $this->getContenu());
				$translate_contenu = str_replace('[theme_action]' , $information['action']->getTheme()->getLibelle(), $this->getContenu());
				$translate_contenu = str_replace('[enseignant_action]' , $information['action']->getEnseignant()->getNom().' '.$information['action']->getEnseignant()->getPrenom(), $this->getContenu());
			}
		}
		
		public function send($to, $from = null)
		{
			if($from == null)
			{
				$utilisateur = unserialize($_SESSION['utilisateur']);
				$from = $utilisateur->getMail();
			}
			
			$this->email->from($from);
			$this->email->to($to);
			$this->email->subject($this->objet);
			$this->email->message($this->contenu);
			
			return $this->email->send();
		}

		public function getContenu()
		{
			return htmlspecialchars_decode($this->contenu);
		}

		public function setContenu($c)
		{
			if (get_magic_quotes_gpc())
				$value = htmlspecialchars(stripslashes((string)$c));
			else
				$this->contenu = htmlspecialchars($c);
		}

		public function getFileName()
		{
			return $this->fileName;
		}

		public function setFileName($name)
		{
			$this->fileName = $name;
		}

		public function getObjet()
		{
			return htmlspecialchars_decode($this->objet);
		}

		public function setObjet($o)
		{
			if (get_magic_quotes_gpc())
				$value = htmlspecialchars(stripslashes((string)$o));
			else
				$this->objet = htmlspecialchars($o);
		}
	}
?>
